import Vue from 'vue'
import Router from 'vue-router'
import routes from './routes'
import { getToken } from '../libs/tools'
Vue.use(Router)
const route = new Router({
  routes,
  mode: 'history'
})

const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return originalPush.call(this, location).catch(err => err)
}
route.beforeEach((to, from, next) => {
  const token = getToken()
  const routeName = to.name
  if(token && routeName !== 'login') {
    // 已登录, 并且进入的是非登录页, 放行
    next()
  } else if (token && routeName === 'login') {
    // 已登录，并且进入的是登录页，重定向到首页
    next({
      name: 'home'
    })
  } else if (!token && routeName === 'login') {
    // 未登录，并且进入的是登录页，放行
    next()
  } else {
    // 未登录，并且进入的是非登录页，重定向到登录页
    next({
      name: 'login'
    })
  }
})

export default route